package top.jacktgq.itheima.bio.UDP.Demo1;

import java.io.IOException;
import java.net.*;

/*
 * 实现UDP协议的发送端
 *    实现封装数据的类java.net.DatagramPacket  将你的数据包装
 *    实现数据传输的类java.net.DatagramSocket  将数据包发出去
 * 实现步骤：
 *    1.创建DatagramPacket对象，封装数据，接收的地址和端口
 *    2.创建DatagramSocket对象
 *    3.调用DatagramSocket类方法send，发送数据包
 *    4.关闭资源
 * DatagramPacket构造方法：
 *    DatagramPacket(byte[] buf, int length, InetAddress address, int port)
 * DatagramSocket构造方法：
 *    DatagramSocket()
 *    方法：send(DatagramPacket d)
 */ 
public class UDPSend {

	public static void main(String[] args) {
		try {
			//创建数据包对象，封装要发送的数据，接收端IP，端口
			byte[] data = "你好UDP".getBytes();
			
			//创建一个InetAddress对象，封装自己的IP地址
			InetAddress inet = InetAddress.getByName("127.0.0.1");
			DatagramPacket dp = new DatagramPacket(data, data.length,inet,5000);
			
			//创建DatagramSocket对象，数据包的发送和接收对象
			DatagramSocket ds = new DatagramSocket();
			
			//调用ds对象的方法send，发送数据包
			ds.send(dp);
			
			//关闭资源
			ds.close();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (SocketException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
